package com.travel.travel_springboot_web.entity;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonProperty;

public class Order implements Serializable {
    private Long id;
    private String orderNo;
    private Long userId;
    @JsonProperty("total_price")
    private BigDecimal totalPrice;
    private Long addressId;
    private Integer status;
    private LocalDateTime createdAt;
    private LocalDateTime updatedAt;
    private Integer confirmed; // 0: 未确认, 1: 已确认
    private Integer customerStatus; // 客户状态
    private LocalDateTime deliveryConfirmedAt; // 送货员确认送达时间
    private LocalDateTime customerConfirmedAt; // 客户确认收货时间
    private Integer orderStatus; // 当前订单状态
    private Integer deliveryStatus; // 送货状态
    private String deliveryPerson; // 送货员姓名
    private String customer; // 客户姓名
    private String deliveryConfirmedBy; // 送货确认人姓名
    private String customerConfirmedBy; // 收货确认人姓名
    
    // 关联数据
    private List<OrderGoods> orderGoods;
    private Address address;
    
    private LocalDateTime createTime;
    
    public Long getId() {
        return id;
    }
    
    public void setId(Long id) {
        this.id = id;
    }
    
    public String getOrderNo() {
        return orderNo;
    }
    
    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }
    
    public Long getUserId() {
        return userId;
    }
    
    public void setUserId(Long userId) {
        this.userId = userId;
    }
    
    public BigDecimal getTotalPrice() {
        return totalPrice;
    }
    
    public void setTotalPrice(BigDecimal totalPrice) {
        this.totalPrice = totalPrice;
    }
    
    public Long getAddressId() {
        return addressId;
    }
    
    public void setAddressId(Long addressId) {
        this.addressId = addressId;
    }
    
    public Integer getStatus() {
        return status;
    }
    
    public void setStatus(Integer status) {
        this.status = status;
    }
    
    public LocalDateTime getCreatedAt() {
        return createdAt;
    }
    
    public void setCreatedAt(LocalDateTime createdAt) {
        this.createdAt = createdAt;
    }
    
    public LocalDateTime getUpdatedAt() {
        return updatedAt;
    }
    
    public void setUpdatedAt(LocalDateTime updatedAt) {
        this.updatedAt = updatedAt;
    }
    
    public List<OrderGoods> getOrderGoods() {
        return orderGoods;
    }
    
    public void setOrderGoods(List<OrderGoods> orderGoods) {
        this.orderGoods = orderGoods;
    }
    
    public Address getAddress() {
        return address;
    }
    
    public void setAddress(Address address) {
        this.address = address;
    }
    
    public Integer getConfirmed() {
        return confirmed;
    }
    
    public void setConfirmed(Integer confirmed) {
        this.confirmed = confirmed;
    }
    
    public Integer getCustomerStatus() {
        return customerStatus;
    }
    
    public void setCustomerStatus(Integer customerStatus) {
        this.customerStatus = customerStatus;
    }
    
    public LocalDateTime getDeliveryConfirmedAt() {
        return deliveryConfirmedAt;
    }
    
    public void setDeliveryConfirmedAt(LocalDateTime deliveryConfirmedAt) {
        this.deliveryConfirmedAt = deliveryConfirmedAt;
    }
    
    public LocalDateTime getCustomerConfirmedAt() {
        return customerConfirmedAt;
    }
    
    public void setCustomerConfirmedAt(LocalDateTime customerConfirmedAt) {
        this.customerConfirmedAt = customerConfirmedAt;
    }
    
    public Integer getOrderStatus() {
        return orderStatus;
    }
    
    public void setOrderStatus(Integer orderStatus) {
        this.orderStatus = orderStatus;
    }
    
    public Integer getDeliveryStatus() {
        return deliveryStatus;
    }
    
    public void setDeliveryStatus(Integer deliveryStatus) {
        this.deliveryStatus = deliveryStatus;
    }
    
    public String getDeliveryPerson() {
        return deliveryPerson;
    }
    
    public void setDeliveryPerson(String deliveryPerson) {
        this.deliveryPerson = deliveryPerson;
    }
    
    public String getCustomer() {
        return customer;
    }
    
    public void setCustomer(String customer) {
        this.customer = customer;
    }
    
    public String getDeliveryConfirmedBy() {
        return deliveryConfirmedBy;
    }
    
    public void setDeliveryConfirmedBy(String deliveryConfirmedBy) {
        this.deliveryConfirmedBy = deliveryConfirmedBy;
    }
    
    public String getCustomerConfirmedBy() {
        return customerConfirmedBy;
    }
    
    public void setCustomerConfirmedBy(String customerConfirmedBy) {
        this.customerConfirmedBy = customerConfirmedBy;
    }
    
    public LocalDateTime getCreateTime() {
        return createTime;
    }
    
    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }
} 